package si.yun.dao;

import org.apache.ibatis.annotations.Param;
import si.yun.entity.*;

import java.util.List;
import java.util.Map;

public interface SyCommentMapper {
    //查询评论(前后端)
    List<Map<String,Object>> selComment(@Param("type") Integer type, @Param("status") Integer status, @Param("userType") Integer userType);
    List<Map<String, Object>> selBackComment(@Param("type") Integer type, @Param("status") Integer status, @Param("userType") Integer userType);
    //统计评论数量
    List<Map<String,Object>> selCommentCount(@Param("type") Integer type, @Param("userType") Integer userType);
    //历史评论次数
    Integer historyCount(@Param("type") Integer type);
    //历史评论人数
    Integer historyNumber(@Param("type") Integer type);
    //今日评论次数
    Integer todayCount(@Param("type") Integer type);
    //今日评论人数
    Integer todayNumber(@Param("type") Integer type);
    //评论状态修改
    int updComment(@Param("status") Integer status, @Param("id") Integer id);
    //彻底删除评论
    Integer clearComment(@Param("id") Integer id);
    //查看课程详情
    SyCourseTab selcourse(@Param("courseId")Integer courseId);

    //课程详情下的评论区（前后端）
    List<SyCommentList> selBackCommentInfo(@Param("id") Integer id,@Param("type") Integer type);
    List<SyCommentList> selBeforeCommentInfo(@Param("id") Integer id,@Param("type") Integer type);
    //添加评论
    Integer addCommentInfo(SyComment comment);
    //查询评论 文章 前后端
    List<Map<String,Object>> selEssayComment(@Param("type") Integer type, @Param("status") Integer status, @Param("userType") Integer userType);
    List<Map<String, Object>> selEssayBackComment(@Param("type") Integer type, @Param("status") Integer status, @Param("userType") Integer userType);
    //查看文章详情
    OperEassyInfo selEassyInfo(@Param("microcircleId") Integer microcircleId);
    //获取用户信息
    Map<String,Object> seluserInfos(@Param("tableName")String tableName,@Param("tableInfo")String tableInfo,@Param("userId") Integer userId);
    //获取文章中包含的图片
    List<Map<String,Object>> selEassyImgs(@Param("microcircleId") Integer microcircleId,@Param("pictureType") Integer pictureType);

    //获取商品评论的信息
    List<Map<String,Object>> selCommodityComment(@Param("type") Integer type, @Param("status") Integer status, @Param("userType") Integer userType);
    List<Map<String, Object>> selCommodityBackComment(@Param("type") Integer type, @Param("status") Integer status, @Param("userType") Integer userType);
    //获取商品的详细信息
    OperCommodityInfo selCommodityInfo(@Param("microcircleId") Integer microcircleId);
    //获取商品中包含的图片selCommodityImgs
    List<Map<String,Object>> selCommodityImgs(@Param("microcircleId") Integer microcircleId,@Param("pictureType") Integer pictureType);
    //获取个人评论统计数量（课程  文章  商品） getCourseCountNum  getEssayCountNum  getProductCourseCountNum
    List<Map<String,Object>> getCourseCountNum(@Param("userId") Integer userId, @Param("userType") Integer userType);
    List<Map<String,Object>> getEssayCountNum(@Param("userId") Integer userId, @Param("userType") Integer userType);
    List<Map<String,Object>> getProductCourseCountNum(@Param("userId") Integer userId, @Param("userType") Integer userType);
    //获取个人课程的评论数据  前后
    List<Map<String,Object>> getCourseBeforeAjax(@Param("userId") Integer userId, @Param("status") Integer status, @Param("userType") Integer userType);
    List<Map<String, Object>> getCourseBackAjax(@Param("userId") Integer userId, @Param("status") Integer status, @Param("userType") Integer userType);
    //获取个人文章的评论数据 前后
    List<Map<String,Object>> selPerBackEasComment(@Param("userId") Integer userId, @Param("status") Integer status, @Param("userType") Integer userType);
    List<Map<String, Object>> selPerBeforeEasComment(@Param("userId") Integer userId, @Param("status") Integer status, @Param("userType") Integer userType);
    //获取个人商品评论的信息 前后
    List<Map<String,Object>> getCommodityBeforeAjax(@Param("userId") Integer userId, @Param("status") Integer status, @Param("userType") Integer userType);
    List<Map<String, Object>> getCommodityBackAjax(@Param("userId") Integer userId, @Param("status") Integer status, @Param("userType") Integer userType);

   /*
    * @Description : 查询前台单个课程详情
    * @Return : si.yun.entity.SyCourseTab
    * @Date : 2021/11/29 8:43
    */
    SyCourseTab selBeforeCourse(@Param("courseId")Integer courseId);
    
    /*
     * @Description : 查看预览图
     * @Return : java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     * @Date : 2021/12/13 9:07
     */
     List<Map<String,Object>> selMicrocircleImg(@Param("type") Integer type,@Param("id") Integer id);


}